package com.xinyue.design.strategy.wayTwo;

/**
 * 业务拓展对象
 * 在给不同客户不同折扣的基础上，增加一次性付款越多，折扣越大优惠。
 * 增加bonus属性，付款度优惠政策。
 */
//duanqixin推荐这个方式。因为业务封装性好，只修改本类。
public class StrategyCredit implements PriceStrategy{

	//增加算法私有属性，由算法自行管理。该属性没有get、set方法，完全私有。
	private double creditPrice;
	
	//构造器
	public StrategyCredit(double creditPrice) {
		this.creditPrice = creditPrice;
	}

	@Override
    public double clientPrice(double price) {
		//业务：公司付款率×价格的10%×0.1 为优惠的价格
		double bonus = creditPrice * price * 0.1 * 0.1;
		//总价格=客户折扣价(9.8折)-付款率优惠价格
		return price * 0.98 - bonus;
    }
}
